home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / fweb / fweb-1.40 / web / Makefile < prev    next >
Makefile  |  1993-10-29  |  17KB  |  592 lines

  1.  
  2. # --- FWEB MAKE FILE (v. 1.30) ---
  3.  
  4. # NOTE:  The procedures for using this make file have changed with v1.30.
  5. # Unix users should first type ``./configure'' for compiling a new version.
  6. # See the more detailed instructions below.
  7.  
  8. # PLEASE REPORT ANY DIFFICULTIES WITH USING THIS MAKE FILE OR WITH ANY
  9. # OTHER ASPECT OF COMPILING OR RUNNING FWEB:  krommes@princeton.edu.
  10.  
  11. # You should PREFACE ALL MAJOR OPERATIONS with
  12.  
  13. #    make -n ...
  14.  
  15. # This tells you what will happen without actually performing the operations.
  16.  
  17.  
  18. # --- PRINCIPAL ENTRY POINTS ---
  19.  
  20. # The principal entry points to this make file can be determined by saying
  21. # ``make help''.  (See the help: target below.)
  22.  
  23.  
  24. # BEFORE USING THIS MAKE FILE: 
  25.  
  26. #    (1) If you are a Unix user, type the following:
  27.  
  28. #        ./configure
  29. # (This generates an appropriate defaults.mk from defaults.mk.in and custom
  30. # from custom.h.in, as well as the Makefile for the manual.)
  31. #        make bootstrap
  32. # (log on as root)        
  33. #        make install
  34.  
  35. # If you are not a Unix user:
  36.  
  37. #    (2) Select a boot subdirectory (containing system-specific files) most
  38. # relevant to your machine; call that $(BOOT_D).  For example, 
  39. # BOOT_D = boot/unix/ansi.
  40.  
  41. #    (3) Copy $(BOOT_D)/defaults.mk to your top-level FWEB directory.
  42.  
  43. #    (4) Verify the system-specific definitions in defaults.mk.  An example
  44. # of defaults.mk is provided in each bootstrap subdirectory.  The possible
  45. # things that you may put into defaults.mk are discussed in 
  46. # $(MANUAL)/INSTALL_FWEB.tex.
  47.  
  48. #    (4) Copy $(BOOT_D)/custom.h to the $(WEB_D) subdirectory as defined in
  49. # setup.mk.  This file contains definitions of various machine- or
  50. # operating-system-dependent flags.  It will be included into the *.c files
  51. # by the C compiler.
  52.  
  53.  
  54. # --- INCLUDING FILES into the Makefile ---
  55.  
  56. # The file defaults.mk customizes the operation of Makefile for your
  57. # compiler environment.
  58. # NOTE: Not all makes include files in identical ways; you may need to
  59. # modify the next line:
  60.  
  61. include defaults.mk # Unix
  62. # ! include "defaults.mk" # Borland/Microsoft
  63.  
  64.  
  65. # --------------------- DON'T TOUCH LINES BELOW HERE!!! --------------------
  66.  
  67. # Experts will note that this file sometimes doesn't use the full power of
  68. # make. This is because some of the makes on the personal computers didn't work
  69. # correctly with some of the more sophisticated commands.
  70.  
  71. # Here we set up the command-line options for the FWEB processors.  Those
  72. # options are as follows:
  73.  
  74. # COMPILER --- Either CC or GCC.  Presently only GCC is relevant, and then
  75. #            only for the Sun.
  76. # FILE --- Should more properly be called PATH.  The directory
  77. #            specification for the output file.
  78. # HOME_MACHINE --- The machine on which you're tangling.  See custom.web or
  79. #             custom.h for a list of the possible macros to use here.
  80. # MACHINE --- The machine for which you're generating C code.
  81.  
  82. # DEBUGGING --- Used by the developer.
  83. # STAT --- Optional additional commands, e.g., the statistics option -s;
  84. #        sometimes used by the developer.
  85. # UNDEF --- Used by the developer.
  86. #
  87. # You can override  macros such as MACHINE and FILE from the command line,
  88. # in the form, e.g.,
  89. #    make MACHINE=SGI FILE="$HOME/fweb/v1.1/unix/sgi"
  90.  
  91. UNDEF =
  92. DEBUGGING =
  93. STAT =
  94.  
  95. # In $(OPTIONS), 
  96. # the -u option is used to cancel out a possible +m command in the .fweb
  97. # ini file. For the use of CUSTOM_OPTIONS, see custom.web. 
  98. # To kill off line numbers, say ``STAT = -\#'' for many makes, or 
  99. # ``STAT = -^#'' for the Microsoft nmake.
  100.  
  101. OPTIONS = -u$(HOME_MACHINE) -m$(MACHINE) $(DEBUGGING)\
  102.      $(UNDEF) -m$(COMPILER) $(STAT) -=$(FILE)$(@)
  103.  
  104. # Other upper-case macros, such as OS_HWEB, are used to express hidden
  105. # dependencies because of files that are @i'd or #included.
  106.  
  107. # For more discussion of the various files, please see INSTALL_FWEB.tex.
  108.  
  109. # Set up the directory macros:
  110.  
  111. # --- Top-level--- 
  112. FWEB0 = ..
  113. # --- The bootstrap directory tree ---
  114. BOOT = $(FWEB0)/boot
  115. # --- Where the demo programs are kept ---
  116. DEMOS = $(FWEB0)/demos
  117. # --- Where the user manual and fwebmac.sty are kept ---
  118. MANUAL = $(FWEB0)/manual
  119. # --- Where *.web, *.hweb, *.c, and *.h are kept ---
  120. WEB = .
  121.  
  122. # --- The first entry makes both FWEB processors ---
  123. all: ftangle fweave
  124.  
  125. # --- If you say ``make bootstrap'', the source files are touched first so
  126. # they're sure to be newer than the web files. If you don't have a 'touch'
  127. # facility, try saying ``make -t ...''.
  128. bootstrap boot: tch_src all
  129.  
  130. tch_src:
  131.     $(TOUCH) $(WEB)/typedefs.hweb $(WEB)/*.h $(WEB)/*.c 
  132.  
  133. # --- The ``make bootstrap'' command assumes that the WEB files are there.
  134. # However, if you're just compiling you shouldn't need the WEB files.  In the
  135. # absence of a WEB file, the null .DEFAULT command ``rebuilds'' the WEB file.
  136. # Then make will try to invoke ftangle.  That shouldn't be there either,
  137. # but if it is, it will try to tangle a non-existent file.  The .IGNORE
  138. # command tells make to continue anyway; then it will just compile.  
  139. # (Unfortunately, these commands don't work with all makes, so they're
  140. # commented out.)
  141. #.DEFAULT:
  142.  
  143. #.IGNORE:
  144.  
  145. # --- Remake things if the make commands themselves change ---
  146. # .KEEP_STATE:
  147.  
  148. # --- CUSTOMIZATION FILE ---
  149. $(WEB)/custom.h $(WEB)/custom.h.in: $(WEB)/custom.web
  150.     ftangle $(WEB)/custom $(OPTIONS) $(CUSTOM_OPTIONS) -#
  151.  
  152. # --- EXTRA MACRO FILE ---
  153. $(WEB)/strmac.h: $(WEB)/strmac.web $(WEB)/os.$(HWEB)
  154.     ftangle $(WEB)/strmac $(OPTIONS)
  155.  
  156. # --- #INCLUDEs ---
  157. INCLUDES_H = $(WEB)/os.h $(WEB)/custom.h $(WEB)/strmac.h
  158.  
  159. D_TYPE_H = $(WEB)/d_type.h $(INCLUDES_H)
  160. Y_TYPE_H = $(WEB)/y_type.h $(INCLUDES_H)
  161. C_TYPE_H = $(WEB)/c_type.h $(Y_TYPE_H) $(D_TYPE_H)
  162.  
  163. A_TYPE_H = $(WEB)/a_type.h $(INCLUDES_H)
  164. S_TYPE_H = $(WEB)/s_type.h $(A_TYPE_H)
  165.  
  166. M_TYPE_H = $(WEB)/m_type.h $(INCLUDES_H)
  167. E_TYPE_H = $(WEB)/e_type.h $(C_TYPE_H)
  168. R_TYPE_H = $(WEB)/r_type.h $(C_TYPE_H)
  169. T_TYPE_H = $(WEB)/t_type.h\
  170.          $(S_TYPE_H) $(R_TYPE_H) $(E_TYPE_H) $(M_TYPE_H)
  171.  
  172. P_TYPE_H = $(WEB)/p_type.h $(INCLUDES_H)
  173. W_TYPE_H = $(WEB)/w_type.h\
  174.          $(P_TYPE_H) $(C_TYPE_H) $(S_TYPE_H) $(D_TYPE_H)
  175.  
  176. TYPEDEFS_H = $(WEB)/typedefs.h $(WEB)/os.h
  177. MAP_H = $(WEB)/map.h $(C_TYPE_H) $(S_TYPE_H)
  178.  
  179. # --- PORTABILITY ISSUES are mostly localized here. ---
  180. OS_HWEB = $(WEB)/os.$(HWEB) $(WEB)/sfile.$(HWEB) 
  181. INCLUDES_HWEB = $(WEB)/sfile.$(HWEB) $(WEB)/includes.$(HWEB)\
  182.          $(WEB)/proto.$(HWEB) $(WEB)/time.$(HWEB)
  183. COMMON_HWEB = $(OS_HWEB) $(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
  184.  
  185. $(WEB)/os.h: $(WEB)/os.web $(INCLUDES_HWEB)
  186.     ftangle $(WEB)/os $(OPTIONS) -#
  187.  
  188. # --- The fundamental macro packages: ---
  189. $(WEB)/typedefs.hweb $(WEB)/typedefs.h: $(WEB)/typedefs.web
  190.     ftangle $(WEB)/typedefs $(OPTIONS) --F -# -=$(FILE)typedefs.h
  191.  
  192. $(WEB)/map.h: $(WEB)/map.web
  193.     ftangle $(WEB)/map $(OPTIONS)
  194.  
  195. # --- COMMON (Routines common to both ftangle and fweave) ---
  196. COMMON = $(INCLUDES_HWEB) $(OS_HWEB)\
  197.         $(WEB)/typedefs.$(HWEB)\
  198.         $(WEB)/mem.$(HWEB) $(WEB)/trunc.$(HWEB) 
  199. COMMON_WEB = $(WEB)/common.web $(COMMON) 
  200.  
  201. $(WEB)/common.c: $(COMMON_WEB)
  202.     ftangle $(WEB)/common $(OPTIONS)
  203.  
  204. C_TYPE_WEB = $(WEB)/c_type.web $(OS_HWEB) 
  205.  
  206. $(WEB)/c_type.h: $(C_TYPE_WEB)
  207.     ftangle $(WEB)/c_type $(OPTIONS)
  208.  
  209. Y_TYPE_WEB = $(WEB)/y_type.web $(OS_HWEB)
  210.  
  211. $(WEB)/y_type.h: $(Y_TYPE_WEB)
  212.     ftangle $(WEB)/y_type $(OPTIONS)
  213.  
  214. common.$(O): $(WEB)/common.c $(TYPEDEFS_H) $(MAP_H)
  215.     $(COMPILE) $(WEB)/common.c        
  216.  
  217.  
  218. # --- STYLE (Reading the style file; also needed for both ftangle and
  219. # fweave) --- 
  220. S_TYPE_WEB = $(WEB)/s_type.web
  221.  
  222. $(WEB)/s_type.h: $(S_TYPE_WEB)
  223.     ftangle $(WEB)/s_type $(OPTIONS)
  224.  
  225. STYLE =  $(OS_HWEB) $(INCLUDES_HWEB)\
  226.          $(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
  227. STYLE_WEB = $(WEB)/style.web $(STYLE)
  228.  
  229. $(WEB)/style.c: $(STYLE_WEB)
  230.     ftangle $(WEB)/style $(OPTIONS)
  231.  
  232. style.$(O): $(WEB)/style.c $(TYPEDEFS_H) $(MAP_H)
  233.     $(COMPILE) $(WEB)/style.c        
  234.  
  235.  
  236. # --- TERMCAP (Dummy termcap routines) ---
  237. A_TYPE_WEB = $(WEB)/a_type.web $(OS_HWEB)
  238.  
  239. $(WEB)/a_type.h: $(A_TYPE_WEB)
  240.     ftangle $(WEB)/a_type $(OPTIONS)
  241.  
  242. TERMCAP0_WEB = $(WEB)/termcap0.web 
  243.  
  244. $(WEB)/termcap0.c: $(TERMCAP0_WEB)
  245.     ftangle $(WEB)/termcap0 $(OPTIONS)
  246.  
  247. termcap0.$(O): $(WEB)/termcap0.c $(A_TYPE_H)
  248.     $(COMPILE) $(WEB)/termcap0.c
  249.  
  250.  
  251. # --- RESERVED WORDS ---
  252. D_TYPE_WEB = $(WEB)/d_type.web $(OS_HWEB)
  253.  
  254. $(WEB)/d_type.h: $(D_TYPE_WEB)
  255.     ftangle $(WEB)/d_type $(OPTIONS)
  256.  
  257. RESERVED_WEB = $(WEB)/reserved.web $(COMMON_HWEB)
  258.  
  259. $(WEB)/reserved.c: $(RESERVED_WEB)
  260.     ftangle $(WEB)/reserved $(OPTIONS)
  261.  
  262. RESERVED_C = $(WEB)/reserved.c $(TYPEDEFS_H) $(C_TYPE_H)
  263.  
  264. RESERVES = reserved.$(O) $(RESERVED2)
  265.  
  266. reserves: $(RESERVES)
  267.  
  268. reserved.$(O): $(RESERVED_C)
  269.     $(COMPILE) $(PART1) $(WEB)/reserved.c
  270.  
  271. reservd2.$(O): $(RESERVED_C)
  272.     $(COMPILE) $(PART2) $(WEB)/reserved.c
  273.  
  274.  
  275. # --- FTANGLE (The ftangle processor) ---
  276. FTANGLE = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
  277.         $(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
  278.         $(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
  279. FTANGLE_WEB = $(WEB)/ftangle.web $(FTANGLE)  
  280.  
  281. $(WEB)/ftangle.c: $(FTANGLE_WEB)
  282.     ftangle $(WEB)/ftangle $(OPTIONS)
  283.  
  284. T_TYPE_WEB = $(WEB)/t_type.web $(OS_HWEB) 
  285.  
  286. $(WEB)/t_type.h: $(T_TYPE_WEB)
  287.     ftangle $(WEB)/t_type $(OPTIONS)
  288.  
  289. FTANGLE_C = $(WEB)/ftangle.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  290.  
  291. FTANGLES = ftangle.$(O) $(FTANGLE2) $(FTANGLE3)
  292.  
  293. ftangles: $(FTANGLES)
  294.  
  295. ftangle.$(O): $(FTANGLE_C)
  296.     $(COMPILE) $(PART1) $(WEB)/ftangle.c    
  297.  
  298. ftangle2.$(O): $(FTANGLE_C)
  299.     $(COMPILE) $(PART2) $(WEB)/ftangle.c     
  300.  
  301. ftangle3.$(O): $(FTANGLE_C)
  302.     $(COMPILE) $(PART3) $(WEB)/ftangle.c
  303.  
  304. ftangle ftangle.exe: $(FTANGLES)\
  305.         common.$(O) eval.$(O) macs.$(O)    ratfor$(LOAD_RATFOR).$(O)\
  306.         $(RESERVES) style.$(O) $(TERMCAP0)
  307.     $(LINK) ftangle$(OBJ) $(FTANGLE2) $(FTANGLE3)\
  308.         common$(OBJ) eval$(OBJ) macs$(OBJ) ratfor$(LOAD_RATFOR)$(OBJ)\
  309.         reserved$(OBJ) $(RESERVED2) style$(OBJ) $(TERMCAP0)\
  310.         $(LIBS)
  311.  
  312. # --- MACS (Macro processing for ftangle) ---
  313. M_TYPE_WEB = $(WEB)/m_type.web $(OS_HWEB)  
  314.  
  315. $(WEB)/m_type.h: $(M_TYPE_WEB)
  316.     ftangle $(WEB)/m_type $(OPTIONS)
  317.  
  318. MACS = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
  319.         $(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
  320.         $(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
  321. MACS_WEB = $(WEB)/macs.web $(MACS)  
  322.  
  323. $(WEB)/macs.c: $(MACS_WEB)
  324.     ftangle $(WEB)/macs $(OPTIONS)    
  325.  
  326. macs.$(O): $(WEB)/macs.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  327.     $(COMPILE) $(WEB)/macs.c        
  328.  
  329.  
  330. # --- RATFOR (Implementing the Ratfor language for ftangle) ---
  331. RATFOR = $(COMMON_HWEB) $(WEB)/t_codes.$(HWEB) $(WEB)/texts.$(HWEB)\
  332.         $(WEB)/stacks.$(HWEB) $(WEB)/val.$(HWEB)\
  333.         $(WEB)/macs.$(HWEB)\
  334.         $(WEB)/trunc.$(HWEB)
  335. RATFOR_WEB = $(WEB)/ratfor.web $(RATFOR)  
  336.  
  337. $(WEB)/ratfor.c: $(RATFOR_WEB)
  338.     ftangle $(WEB)/ratfor $(OPTIONS)
  339.  
  340. R_TYPE_WEB = $(WEB)/r_type.web $(OS_HWEB)  
  341.  
  342. $(WEB)/r_type.h: $(R_TYPE_WEB)
  343.     ftangle $(WEB)/r_type $(OPTIONS)
  344.  
  345. ratfor.$(O): $(WEB)/ratfor.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  346.     $(COMPILE) $(WEB)/ratfor.c        
  347.  
  348. RATFOR0_WEB = $(WEB)/ratfor0.web $(RATFOR)
  349.  
  350. $(WEB)/ratfor0.c: $(RATFOR0_WEB)
  351.     ftangle $(WEB)/ratfor0 $(OPTIONS)
  352.  
  353. ratfor0.$(O): $(WEB)/ratfor0.c $(T_TYPE_H)
  354.     $(COMPILE) $(WEB)/ratfor0.c
  355.  
  356.  
  357. # --- EVAL (Expression evaluation) ---
  358. EVAL = $(COMMON_HWEB) $(WEB)/val.$(HWEB) $(WEB)/os.$(HWEB)\
  359.         $(WEB)/t_codes.$(HWEB)
  360. EVAL_WEB = $(WEB)/eval.web $(EVAL)  
  361.  
  362. $(WEB)/eval.c: $(EVAL_WEB)
  363.     ftangle $(WEB)/eval $(OPTIONS)    
  364.  
  365. E_TYPE_WEB = $(WEB)/e_type.web $(OS_HWEB) 
  366.  
  367. $(WEB)/e_type.h: $(E_TYPE_WEB)
  368.     ftangle $(WEB)/e_type $(OPTIONS)
  369.  
  370. eval.$(O): $(WEB)/eval.c $(E_TYPE_H) $(TYPEDEFS_H)
  371.     $(COMPILE) $(WEB)/eval.c        
  372.  
  373.  
  374. # --- FWEAVE (The fweave processor) ---
  375. W_TYPE_WEB = $(WEB)/w_type.web $(OS_HWEB)  
  376.  
  377. $(WEB)/w_type.h: $(W_TYPE_WEB)
  378.     ftangle $(WEB)/w_type $(OPTIONS)
  379.  
  380. FWEAVE = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
  381.         $(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
  382.         $(WEB)/scraps.$(HWEB)
  383.  
  384. FWEAVE_WEB = $(WEB)/fweave.web $(FWEAVE)  
  385.  
  386. $(WEB)/fweave.c: $(FWEAVE_WEB)
  387.     ftangle $(WEB)/fweave $(OPTIONS)
  388.  
  389. FWEAVE_C = $(WEB)/fweave.c $(W_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  390.  
  391. FWEAVES = fweave.$(O) $(FWEAVE2) $(FWEAVE3)
  392.  
  393. fweaves: $(FWEAVES)
  394.  
  395. fweave.$(O): $(FWEAVE_C)
  396.     $(COMPILE) $(PART1) $(WEB)/fweave.c        
  397.  
  398. fweave2.$(O): $(FWEAVE_C)
  399.     $(COMPILE) $(PART2) $(WEB)/fweave.c        
  400.  
  401. fweave3.$(O): $(FWEAVE_C)
  402.     $(COMPILE) $(PART3) $(WEB)/fweave.c
  403.  
  404. fweave fweave.exe: $(FWEAVES)\
  405.         common.$(O) prod.$(O) ratfor0.$(O) $(RESERVES) style.$(O)\
  406.         $(TERMCAP0)    
  407.     $(LINK) fweave$(OBJ) $(FWEAVE2) $(FWEAVE3)\
  408.         common$(OBJ) prod$(OBJ) ratfor0$(OBJ)\
  409.         reserved$(OBJ) $(RESERVED2) style$(OBJ) $(TERMCAP0)\
  410.         $(LIBS)
  411.  
  412.  
  413. # --- PROD (The ``productions'' for fweave) ---
  414. P_TYPE_WEB = $(WEB)/p_type.web $(OS_HWEB)  
  415.  
  416. $(WEB)/p_type.h: $(P_TYPE_WEB)
  417.     ftangle $(WEB)/p_type $(OPTIONS)
  418.  
  419. PROD = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
  420.         $(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
  421.         $(WEB)/scraps.$(HWEB)
  422.  
  423. PROD_WEB = $(WEB)/prod.web $(PROD)  
  424.  
  425. $(WEB)/prod.c: $(PROD_WEB)
  426.     ftangle $(WEB)/prod $(OPTIONS)    
  427.  
  428. prod.$(O): $(WEB)/prod.c $(P_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  429.     $(COMPILE) $(WEB)/prod.c        
  430.  
  431. #------------------------------------------------------------------------------
  432.  
  433. # --- DOCUMENTATION ---
  434. FWEB_TEX = $(FWEB0)fweb.tex # This file is included for all documentation.
  435.  
  436. # --- We can handle all the dvi files with a generalized suffix rule. ---
  437.  
  438. # If your make (e.g., Borland) doesn't like the following line, try just
  439. # commenting it out. 
  440. .SUFFIXES: .tex .dvi 
  441.  
  442. .tex.dvi: 
  443.     tex $*            
  444.     $(PRINT_DVI) $(@)
  445.  
  446. # In the following, note the occasional use of the -i command-line option
  447. # to fweave. This prevents repeated printing of the header files that are
  448. # included via @I.
  449.  
  450. fwebmac.tex: $(MANUAL)/fwebmac.web
  451.     fweave $(MANUAL)/fwebmac
  452.  
  453. custom.tex: $(WEB)/custom.web $(WEB)/formats.$(HWEB)
  454.     fweave $(WEB)/custom
  455.  
  456. strmac.tex: $(WEB)/strmac.web $(OS_HWEB) $(WEB)/formats.$(HWEB)
  457.     fweave $(WEB)/strmac -i
  458.  
  459. y_type.tex: $(Y_TYPE_WEB) $(WEB)/formats.$(HWEB)
  460.     fweave $(WEB)/y_type -i
  461.  
  462. c_type.tex: $(C_TYPE_WEB) $(WEB)/formats.$(HWEB)
  463.     fweave $(WEB)/c_type -i    
  464.  
  465. common.tex: $(COMMON_WEB)
  466.     fweave $(WEB)/common
  467.  
  468. e_type.tex: $(E_TYPE_WEB) $(WEB)/formats.$(HWEB)
  469.     fweave $(WEB)/e_type -i    
  470.  
  471. eval.tex: $(EVAL_WEB)
  472.     fweave $(WEB)/eval -i        
  473.  
  474. m_type.tex: $(M_TYPE_WEB) $(WEB)/formats.$(HWEB)
  475.     fweave $(WEB)/m_type -i    
  476.  
  477. macs.tex: $(MACS_WEB)
  478.     fweave $(WEB)/macs -i        
  479.  
  480. p_type.tex: $(P_TYPE_WEB) $(WEB)/formats.$(HWEB)
  481.     fweave $(WEB)/p_type -i    
  482.  
  483. prod.tex: $(PROD_WEB)
  484.     fweave $(WEB)/prod -i        
  485.  
  486. r_type.tex: $(R_TYPE_WEB) $(WEB)/formats.$(HWEB)
  487.     fweave $(WEB)/r_type -i    
  488.  
  489. ratfor.tex: $(RATFOR_WEB)
  490.     fweave $(WEB)/ratfor -i    
  491.  
  492. ratfor0.tex: $(RATFOR0_WEB)
  493.     fweave $(WEB)/ratfor0 -i
  494.  
  495. d_type.tex: $(D_TYPE_WEB) $(WEB)/formats.$(HWEB)
  496.     fweave $(WEB)/d_type -i
  497.  
  498. reserved.tex: $(RESERVED_WEB)
  499.     fweave $(WEB)/reserved -i -ykw750
  500.  
  501. t_type.tex: $(T_TYPE_WEB) $(WEB)/formats.$(HWEB)
  502.     fweave $(WEB)/t_type -i    
  503.  
  504. ftangle.tex: $(FTANGLE_WEB)
  505.     fweave $(WEB)/ftangle -i
  506.  
  507. s_type.tex: $(S_TYPE_WEB) $(WEB)/formats.$(HWEB)
  508.     fweave $(WEB)/s_type -i    
  509.  
  510. style.tex: $(STYLE_WEB)
  511.     fweave $(WEB)/style -i        
  512.  
  513. a_type.tex: $(A_TYPE_WEB) $(WEB)/formats.$(HWEB)
  514.     fweave $(WEB)/a_type -i
  515.  
  516. termcap0.tex: $(TERMCAP0_WEB)
  517.     fweave $(WEB)/termcap0 -i
  518.  
  519. w_type.tex: $(W_TYPE_WEB) $(WEB)/formats.$(HWEB)
  520.     fweave $(WEB)/w_type -i    
  521.  
  522. fweave.tex: $(FWEAVE_WEB)
  523.     fweave $(WEB)/fweave -i
  524.  
  525. #------------------------------------------------------------------------------
  526.  
  527. # --- INSTALLATION of the processors ---
  528.  
  529. install: all $(MANUAL)/fweb.1 $(MANUAL)/fweb.info
  530.     @echo ""
  531.     @echo "If any changes need to be made to the default directories,"
  532.     @echo "please edit ./defaults.mk.in, then rerun ../configure."
  533.     @echo ""
  534.     $(INSTALL_PROGRAM) ftangle $(bindir)/ftangle
  535.     $(INSTALL_PROGRAM) fweave $(bindir)/fweave
  536.     $(INSTALL_DATA) $(MANUAL)/fweb.1 $(mandir)/fweb.$(manext)
  537.     $(INSTALL_DATA) $(MANUAL)/fweb.texinfo $(texinfodir)/fweb.texinfo
  538.     $(INSTALL_DATA) $(MANUAL)/fweb.info $(infodir)/fweb.info
  539.     $(INSTALL_DATA) $(MANUAL)/fweb.info-1 $(infodir)/fweb.info-1
  540.     $(INSTALL_DATA) $(MANUAL)/fweb.info-2 $(infodir)/fweb.info-2
  541.     $(INSTALL_DATA) $(MANUAL)/fweb.info-3 $(infodir)/fweb.info-3
  542.     $(INSTALL_DATA) $(MANUAL)/fweb.info-4 $(infodir)/fweb.info-4
  543.     $(INSTALL_DATA) $(MANUAL)/fwebmac.sty $(texdir)/fwebmac.sty
  544.     $(INSTALL_DATA) $(MANUAL)/fwebmacL.sty $(texdir)/fwebmacL.sty
  545.     $(INSTALL_DATA) $(MANUAL)/fweb.tex $(texdir)/fweb.tex
  546.     @echo ""
  547.     @echo "Don't forget to record the presence of fweb.info by editing $(infodir)/dir."
  548.     @echo ""
  549.     @echo "To install the FWEB user manual and reference guide, please type"
  550.     @echo ""
  551.     @echo "      cd ../manual"
  552.     @echo "      make install"
  553.     @echo ""
  554.  
  555. uninstall:
  556.     @echo "Uninstall not implemented yet!"
  557.  
  558. # --- CLEANUP ---
  559. all_clean very_clean: clean clean_man clean_install
  560.  
  561. # --- Clean up the OBJECT FILES ---
  562. clean:
  563.     $(RM) -f ftangle fweave *.o core
  564.  
  565. mostlyclean: clean
  566.  
  567. distclean: clean
  568.     $(RM) -f defaults.mk config.status
  569.  
  570. realclean: distclean
  571.  
  572.  
  573. # --- HELP ---
  574. help:
  575.     @echo "Important targets for this Makefile:"
  576.     @echo ""
  577.     @echo " all       --- Compile and link everything."
  578.     @echo " bootstrap --- Touch *.c and *.h, then compile and link everything."
  579.     @echo " clean     --- Removes the FWEB processors and object files."
  580.     @echo " distclean --- Like clean, but also deletes defaults.mk."
  581.     @echo " ftangle   --- Compile and link ftangle."
  582.     @echo " fweave    --- Compile and link fweave."
  583.     @echo " help      --- Obtain help about this Makefile."
  584.     @echo " install   --- Install the processors."
  585.     @echo " *.tex     --- Woven documentation for FWEB source code."
  586.     @echo " *.dvi     --- Document AND PRINT FWEB source code."
  587.     @echo "               (To prevent a dvi file from being printed"
  588.     @echo "               automatically, uncomment the #ECHO = line in"
  589.     @echo "               defaults.mk.in.)"
  590.  
  591.  
  592.